package com.sinobpo.rnd2.ehr.dao;

import java.util.List;

import com.sinobpo.rnd2.ehr.util.TimeType;

/**
 * 父类统计接口
 * 
 * @author yinghui.zhang
 * @CreateDate 2012-7-11
 * @file ClinicSat.java
 * @package com.sinobpo.rnd2.ehr.dao
 * @version 1.0
 * @Email uuhui@163.com
 */
public interface BaseDao<T> {

	/**
	 * 按查询条件进行综合统计
	 * 
	 * @param timeType
	 *            日期枚举类型(年/月/日)
	 * 
	 * @param conds
	 *            查询条件
	 * @return List<T>
	 */
	public List<T> getSum(TimeType timeType, Object... conds);

	/**
	 * 按查询条件进行综合分类统计
	 * 
	 * @param timeType
	 *            日期枚举类型(年/月/日)
	 * @param conds
	 *            查询条件
	 * @return List<String>
	 */
	public Object getSumByType(TimeType timeType, Object... conds);

	/**
	 * 按查询条件查询数据
	 * 
	 * @param page
	 *            当前页数
	 * @param rows
	 *            当前行数
	 *@param timeType
	 *            日期枚举类型(年/月/日)
	 * @param conds
	 *            查询条件
	 * @return
	 */
	public List<T> getList(int page, int rows, TimeType timeType,
			Object... conds);

	/**
	 * 查询数据总数
	 * 
	 * @param timeType
	 *            日期枚举类型(年/月/日)
	 * @param conds
	 *            查询条件
	 * @return int
	 */
	public int getCount(TimeType timeType, Object... conds);
}
